package com.dhcc.bpm.modules.scf.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.scf.dto.ScfContractInfoDTO;
import com.dhcc.bpm.modules.scf.entity.ScfContractInfo;
import com.dhcc.bpm.modules.scf.vo.ScfContractInfoVO.ScfGetContractDetailsVO;
import com.dhcc.bpm.modules.scf.vo.ScfContractInfoVO.ScfGetContractListVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 合同信息表服务类
 */
public interface IScfContractInfoService extends IService<ScfContractInfo> {
    /**
     * 自定义分页
     *
     * @param page
     * @param scfContractInfo
     * @return
     */
    IPage<ScfGetContractListVO> selectScfContractInfoPage(IPage<ScfGetContractListVO> page, ScfContractInfoDTO scfContractInfo);

    /**
     * 自定义查询详情
     *
     * @param scfContractInfo
     * @return
     */
    ScfGetContractDetailsVO getDetails(ScfContractInfoDTO scfContractInfo);

    /**
     * 合同信息新增
     *
     * @param scfContractInfo
     * @return
     */
    boolean saveContractInfo(ScfContractInfoDTO scfContractInfo) throws Exception;

    /**
     * 合同信息导入
     *
     * @param scfContractInfo
     * @return
     */
    int bachSaveContractInfo(List<ScfContractInfo> scfContractInfos, String operatorId);

    /**
     * 合同信息更新
     *
     * @param scfContractInfo
     * @return
     */
    boolean updateContractInfo(ScfContractInfoDTO scfContractInfo);

    /**
     * 合同信息-批量导入
     * 当前用户ID
     *
     * @param file
     * @return
     */
    List<ScfContractInfo> batchSaveContractInfo(String operatorId, MultipartFile file) throws IOException;

    Boolean deleteByIds(String[] split);
}
